Security Patterns

Design patterns can be applied to achieve goals in the area of security. All of the classical design patterns have different instantiations to fulfill some information security goal: such as confidentiality, integrity, and availability. Additionally, one can create a new design pattern to specifically achieve some security goal.

Contents

Existing security pattern

The pattern community has provided a collection of security patterns, which were discussed in workshops at Pattern Languages of Programs (PLoP) conferences. They have been unified and published in a joint project[1]. Heyman and Yskout have also collected[2] and analyzed [3] a huge number of security patterns.

The Open Group provides a set of documented security pattern.

Available system patterns

These are patterns that are concerned with the availability of the assets. The assets are either services or resources offered to users.

Protected system patterns

This is a set of patterns concerned with the confidentiality and integrity of information by providing means to manage access and usage of the sensitive data.

The protected system pattern provides some reference monitor or enclave that owns the resources and therefor must be bypassed to get access. The monitor enforces as the single point a policy. The GoF refers to it as "Protection Proxy".

The policy pattern is an architecture to decouple the policy from the normal resource code. An authenticated user owns a security context (erg. a role) that is passed to the guard of resource. The guard checks inside the policy whether the context of this user and the rules match and provides or denies access to the resource.

The authenticator pattern is also known as the Pluggable Authentication Modules or Java Authentication and Authorization Service (JAAS).

Security patterns for Java EE and XML Web Services [4]

This is a set of security patterns evolved by a team of engineers from Sun Microsystems that contributes to building end-to-end security into Java EE enterprise applications, XML Web services, identity management systems, and service provisioning solutions.

External links

References

  1. ^ Markus Schumacher, Eduardo Fernandez-Buglioni, Duane Hybertson, Frank Buschmann, Peter Sommerlad. Security Patterns: Integrating Security and Systems Engineering, Wiley Series in Software Design Patterns, 2005.
  2. ^ Yskout, K. et al., A system of security patterns. Technical report CW-469, Katholieke Unversiteit Leuven, December 2006.
  3. ^ Heyman, T., et al., W. An analysis of the security patterns landscape. In SESS ’07: Proceedings of the Third International Workshop on Software Engineering for Secure Systems (Washington, DC, USA, 2007), IEEE Computer Society
  4. ^ Ramesh Nagappan, Christopher Steel. Core Security Patterns: Best Practices and Strategies for J2EE, Web Services and Identity Management, Prentice Hall, 2005.